<html>
<head><meta charset="utf-8"><title>Internationalization · t-compiler/wg-diagnostics · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/index.html">t-compiler/wg-diagnostics</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html">Internationalization</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="167630643"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167630643" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167630643">(Jun 08 2019 at 03:05)</a>:</h4>
<p>Started a thread on internationalization in <a href="https://internals.rust-lang.org/t/translating-the-compiler/10376" target="_blank" title="https://internals.rust-lang.org/t/translating-the-compiler/10376">https://internals.rust-lang.org/t/translating-the-compiler/10376</a> , thought  y'all would be interested</p>



<a name="167659788"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167659788" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167659788">(Jun 08 2019 at 17:26)</a>:</h4>
<p><span class="user-mention" data-user-id="119031">@Esteban Küber</span> i don't understand what you mean when you say our diagnostics system isn't ready for this</p>



<a name="167659800"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167659800" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167659800">(Jun 08 2019 at 17:27)</a>:</h4>
<p>This wouldn't even be plumbed through diagnostics in the first place, this is _largely_ just changing the strings that get fed to diagnostics</p>



<a name="167659876"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167659876" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167659876">(Jun 08 2019 at 17:29)</a>:</h4>
<p>We do a lot of string tweaking by hand. We would need to stop doing that</p>



<a name="167659884"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167659884" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167659884">(Jun 08 2019 at 17:29)</a>:</h4>
<p>Not only with plural handling but also combining substrings all over the place</p>



<a name="167659968"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167659968" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167659968">(Jun 08 2019 at 17:30)</a>:</h4>
<p>Q</p>



<a name="167659991"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167659991" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167659991">(Jun 08 2019 at 17:31)</a>:</h4>
<p>I'm not opposed to the idea, I just think that keeping the high quality of errors, improving existing errors and keeping them translation friendly will be a lot of work</p>



<a name="167659994"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167659994" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167659994">(Jun 08 2019 at 17:31)</a>:</h4>
<p>For which we don't have the manpower today</p>



<a name="167660061"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167660061" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167660061">(Jun 08 2019 at 17:33)</a>:</h4>
<p>But there are some things that can be done in the meantime (glossary, extending error codes, cleaning up logic) that will be improvements even we don't start translating rustc yet</p>



<a name="167665873"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167665873" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Tom Phinney <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167665873">(Jun 08 2019 at 20:17)</a>:</h4>
<blockquote>
<p>Not only with plural handling but also combining substrings all over the place<br>
We do a lot of string tweaking by hand.</p>
</blockquote>
<p><span class="user-mention" data-user-id="132040">@Manish Goregaokar</span>  This is part of what I saw a year ago when I looked at how difficult it would be to translate <code>rustc</code>'s generated messages to a wide set of other languages (particularly non-European ones).</p>



<a name="167665998"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167665998" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167665998">(Jun 08 2019 at 20:20)</a>:</h4>
<p><span class="user-mention" data-user-id="119031">@Esteban Küber</span> <span class="user-mention" data-user-id="132894">@Tom Phinney</span> fluent has good support for doing this kind of thing, though</p>



<a name="167666009"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666009" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666009">(Jun 08 2019 at 20:21)</a>:</h4>
<p>Again, it's precisely designed for this kind of thing</p>



<a name="167666040"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666040" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666040">(Jun 08 2019 at 20:22)</a>:</h4>
<p>Fluent totally does substring combination and selection</p>



<a name="167666057"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666057" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666057">(Jun 08 2019 at 20:22)</a>:</h4>
<p>Variables are quite powerful</p>



<a name="167666070"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666070" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666070">(Jun 08 2019 at 20:23)</a>:</h4>
<p><span class="user-mention" data-user-id="132894">@Tom Phinney</span> this is super tricky to do in a format! based system but fluent is better</p>



<a name="167666072"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666072" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Tom Phinney <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666072">(Jun 08 2019 at 20:23)</a>:</h4>
<p><span class="user-mention" data-user-id="132040">@Manish Goregaokar</span>  For plurals, nominative vs genitive vs accusative case (in Roman languages), etc. I think <span class="user-mention" data-user-id="119031">@Esteban Küber</span> 's concern is that there's a lot of ad hoc string assembly that would have to be rationalized in a way that removes English-language dependence.</p>



<a name="167666076"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666076" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666076">(Jun 08 2019 at 20:23)</a>:</h4>
<p>You can do casing</p>



<a name="167666087"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666087" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666087">(Jun 08 2019 at 20:23)</a>:</h4>
<p><span class="user-mention" data-user-id="119031">@Esteban Küber</span> <span class="user-mention" data-user-id="132040">@Manish Goregaokar</span>  So perhaps we can start with the places that have mostly string literals that are not formatted at all but just <code>.to_string()</code>ed</p>



<a name="167666138"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666138" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666138">(Jun 08 2019 at 20:24)</a>:</h4>
<p>I don't think we need to</p>



<a name="167666140"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666140" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666140">(Jun 08 2019 at 20:24)</a>:</h4>
<p>Bt</p>



<a name="167666141"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666141" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666141">(Jun 08 2019 at 20:24)</a>:</h4>
<p>Brb</p>



<a name="167666159"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666159" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666159">(Jun 08 2019 at 20:25)</a>:</h4>
<p>wg-diagnostics has a plan to move diagnostics out of the happy path and more into structs that can be rendered</p>



<a name="167666169"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666169" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666169">(Jun 08 2019 at 20:25)</a>:</h4>
<p>it seems to me that after you've moved something into a struct, there should be no strings in the happy path, and so you can internationalize the renderer</p>



<a name="167666197"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666197" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666197">(Jun 08 2019 at 20:26)</a>:</h4>
<p>Okay so</p>



<a name="167666218"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666218" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666218">(Jun 08 2019 at 20:26)</a>:</h4>
<p>Arbitrary substringing/etc is something Fluent does quite well. The main concern is that these cases may not be as parallelizeable</p>



<a name="167666229"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666229" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666229">(Jun 08 2019 at 20:27)</a>:</h4>
<p>like, if we get a bunch of people converting things to translation strings, they may not know how to do these. which is fine. it's not hard to document and teach, but even without that it's fine</p>



<a name="167666235"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666235" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Tom Phinney <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666235">(Jun 08 2019 at 20:27)</a>:</h4>
<p>I don't recall any real "blockers" in what I saw in <code>rustc</code>'s code when I examined it a year ago, but it will take more time than simply reworking message text with argument insertion, which <code>Fluent</code> and <code>Pontoon</code> seem to actually handle quite well.</p>



<a name="167666240"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666240" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666240">(Jun 08 2019 at 20:27)</a>:</h4>
<p>renderable structs would be nice, like that's basically a 1:1 mapping to a fluent id + variables</p>



<a name="167666242"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666242" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666242">(Jun 08 2019 at 20:28)</a>:</h4>
<p><span class="user-mention" data-user-id="132894">@Tom Phinney</span> I'm not sure what you mean</p>



<a name="167666283"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666283" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666283">(Jun 08 2019 at 20:28)</a>:</h4>
<p><span class="user-mention" data-user-id="132040">@Manish Goregaokar</span> there's <a href="https://github.com/rust-lang/rust/issues/51528" target="_blank" title="https://github.com/rust-lang/rust/issues/51528">https://github.com/rust-lang/rust/issues/51528</a> if you haven't seen that issue yet.</p>



<a name="167666286"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666286" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666286">(Jun 08 2019 at 20:28)</a>:</h4>
<p>it doesn't have to be _just_ argument insertion. you can do argument selection too</p>



<a name="167666291"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666291" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666291">(Jun 08 2019 at 20:28)</a>:</h4>
<p><span class="user-mention" data-user-id="132040">@Manish Goregaokar</span> one thing that might make sense is to focus on a small subset of errors somewhere in the compiler to get a feeling for it</p>



<a name="167666292"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666292" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666292">(Jun 08 2019 at 20:28)</a>:</h4>
<p>and to get the interface in place</p>



<a name="167666293"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666293" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666293">(Jun 08 2019 at 20:28)</a>:</h4>
<p>sure</p>



<a name="167666296"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666296" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666296">(Jun 08 2019 at 20:28)</a>:</h4>
<p>e.g. the traits needed and whatnot</p>



<a name="167666297"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666297" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666297">(Jun 08 2019 at 20:28)</a>:</h4>
<p>that's kind of ... the plan?</p>



<a name="167666308"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666308" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666308">(Jun 08 2019 at 20:29)</a>:</h4>
<p><span class="user-mention" data-user-id="132040">@Manish Goregaokar</span>  :P</p>



<a name="167666309"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666309" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666309">(Jun 08 2019 at 20:29)</a>:</h4>
<p>i feel like people are assuming i want to do this all at once?</p>



<a name="167666311"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666311" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666311">(Jun 08 2019 at 20:29)</a>:</h4>
<p><span class="user-mention" data-user-id="132040">@Manish Goregaokar</span> no</p>



<a name="167666314"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666314" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666314">(Jun 08 2019 at 20:29)</a>:</h4>
<p>but I think perhaps it would be best to not be incremental at the start</p>



<a name="167666315"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666315" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666315">(Jun 08 2019 at 20:29)</a>:</h4>
<p>like, of course we need to get the framework set up first. and then get translation strings in, slowly, growing the framework where necessary</p>



<a name="167666317"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666317" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666317">(Jun 08 2019 at 20:29)</a>:</h4>
<p>what do you mean?</p>



<a name="167666344"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666344" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666344">(Jun 08 2019 at 20:30)</a>:</h4>
<p>just do a small bit and figure out the framework, and then stop; don't do more for a while</p>



<a name="167666374"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666374" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666374">(Jun 08 2019 at 20:30)</a>:</h4>
<p>and then figure out how this meshes with wg-diagnostics's plan to have error structs</p>



<a name="167666375"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666375" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666375">(Jun 08 2019 at 20:30)</a>:</h4>
<p>that's not "not be incremental" means :)</p>



<a name="167666381"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666381" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666381">(Jun 08 2019 at 20:30)</a>:</h4>
<p>I think the thing I jumped at is, it's gonna be a lot of work and it will cause churn. The intermediate steps are gonna be ugly, but it's something we need to do.</p>



<a name="167666382"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666382" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666382">(Jun 08 2019 at 20:30)</a>:</h4>
<p>I don't think the intermediate steps will be ugly?</p>



<a name="167666389"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666389" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666389">(Jun 08 2019 at 20:30)</a>:</h4>
<p>It's pretty smooth to migrate</p>



<a name="167666403"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666403" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666403">(Jun 08 2019 at 20:31)</a>:</h4>
<p>Once we have error structs it'll be much more easy, but it is a bigger undertaking than I originally expected</p>



<a name="167666406"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666406" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666406">(Jun 08 2019 at 20:31)</a>:</h4>
<p>once you replace a string with a <code>text!()</code> invocation (or whatever), that's it.</p>



<a name="167666407"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666407" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666407">(Jun 08 2019 at 20:31)</a>:</h4>
<p>oh, for error structs</p>



<a name="167666409"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666409" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666409">(Jun 08 2019 at 20:31)</a>:</h4>
<p><span class="user-mention" data-user-id="119031">@Esteban Küber</span> Yes, do you realize now how much technical debt y'all have added? ;)</p>



<a name="167666412"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666412" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666412">(Jun 08 2019 at 20:31)</a>:</h4>
<p>can you give examples of what you mean by the error struct?</p>



<a name="167666413"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666413" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666413">(Jun 08 2019 at 20:31)</a>:</h4>
<p>is it something like</p>



<a name="167666462"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666462" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666462">(Jun 08 2019 at 20:32)</a>:</h4>
<p><span class="user-mention" data-user-id="132040">@Manish Goregaokar</span> like so: <a href="https://github.com/rust-lang/rust/issues/61132" target="_blank" title="https://github.com/rust-lang/rust/issues/61132">https://github.com/rust-lang/rust/issues/61132</a></p>



<a name="167666464"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666464" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666464">(Jun 08 2019 at 20:32)</a>:</h4>
<p>MoveOutOfBorrowError {<br>
  original: Span,<br>
  new: Span,<br>
  ty: Ty,<br>
  // some other crap<br>
}</p>



<a name="167666468"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666468" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666468">(Jun 08 2019 at 20:32)</a>:</h4>
<p>Yes</p>



<a name="167666469"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666469" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666469">(Jun 08 2019 at 20:32)</a>:</h4>
<p>got it</p>



<a name="167666471"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666471" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666471">(Jun 08 2019 at 20:32)</a>:</h4>
<p>okay so</p>



<a name="167666472"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666472" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666472">(Jun 08 2019 at 20:32)</a>:</h4>
<p>this is good, actually</p>



<a name="167666473"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666473" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666473">(Jun 08 2019 at 20:32)</a>:</h4>
<p>All encompassing every variable that would affect output</p>



<a name="167666486"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666486" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666486">(Jun 08 2019 at 20:33)</a>:</h4>
<p>this makes stuff much nicer!</p>



<a name="167666487"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666487" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666487">(Jun 08 2019 at 20:33)</a>:</h4>
<p>we can transition to error structs, and in the process transition to fluent</p>



<a name="167666490"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666490" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666490">(Jun 08 2019 at 20:33)</a>:</h4>
<p>@centril actually the part I'm struggling with is some borrow errors that have different codes but are fundamentally the same thing <span aria-label="smile" class="emoji emoji-263a" role="img" title="smile">:smile:</span>️</p>



<a name="167666491"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666491" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666491">(Jun 08 2019 at 20:33)</a>:</h4>
<p>yea, I think we can bootstrap all of these changes simultaneously</p>



<a name="167666493"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666493" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666493">(Jun 08 2019 at 20:33)</a>:</h4>
<p>in an independent way, e.g. you can move something to an error struct, and you can _also_ move that error struct to Fluent if you _want_, but you don't have to</p>



<a name="167666538"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666538" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666538">(Jun 08 2019 at 20:34)</a>:</h4>
<p>Yep</p>



<a name="167666540"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666540" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Esteban Küber <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666540">(Jun 08 2019 at 20:34)</a>:</h4>
<p>That sounds good to me</p>



<a name="167666541"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666541" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666541">(Jun 08 2019 at 20:34)</a>:</h4>
<p>might even move some parts to struct reporting just for fluent, others just for annotate-rs</p>



<a name="167666548"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666548" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666548">(Jun 08 2019 at 20:34)</a>:</h4>
<p>as in?</p>



<a name="167666549"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666549" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666549">(Jun 08 2019 at 20:34)</a>:</h4>
<p>whatever contributors focus on. and at some point we'll have everything moved</p>



<a name="167666554"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666554" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666554">(Jun 08 2019 at 20:34)</a>:</h4>
<p>Right; this sounds good... connecting fluent at once is probably a good idea because then you also figure out what sessions and context data need to be passed as well</p>



<a name="167666555"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666555" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666555">(Jun 08 2019 at 20:34)</a>:</h4>
<p>no like, there don't need to be conflicts of interest</p>



<a name="167666556"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666556" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666556">(Jun 08 2019 at 20:34)</a>:</h4>
<p>I should attend the WG diagnostics meetings lol, I didn't notice this go by and this is kinda amazing</p>



<a name="167666567"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666567" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666567">(Jun 08 2019 at 20:35)</a>:</h4>
<p><span class="user-mention" data-user-id="126931">@centril</span> i think fluent will largely work based off of globals so it's fine</p>



<a name="167666571"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666571" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Tom Phinney <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666571">(Jun 08 2019 at 20:35)</a>:</h4>
<p>It's just that it's a large effort to address all the different error processing sections of <code>rustc</code>. That's why a small starter sample, as <span class="user-mention" data-user-id="126931">@centril</span> advises, is almost certainly the way to proceed.</p>



<a name="167666573"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666573" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666573">(Jun 08 2019 at 20:35)</a>:</h4>
<p>ouch.. globals... that is heartbreaking <span aria-label="slight smile" class="emoji emoji-1f642" role="img" title="slight smile">:slight_smile:</span></p>



<a name="167666574"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666574" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666574">(Jun 08 2019 at 20:35)</a>:</h4>
<p><span class="user-mention" data-user-id="132894">@Tom Phinney</span> i don't think i ever suggested doing it all at once, people keep assumign that</p>



<a name="167666575"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666575" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666575">(Jun 08 2019 at 20:35)</a>:</h4>
<p>of course it's going to be incremental</p>



<a name="167666621"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666621" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666621">(Jun 08 2019 at 20:36)</a>:</h4>
<p>but I do believe it's _doable_</p>



<a name="167666622"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666622" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666622">(Jun 08 2019 at 20:36)</a>:</h4>
<p>the concerns you were bringing up were that it's not</p>



<a name="167666625"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666625" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666625">(Jun 08 2019 at 20:36)</a>:</h4>
<p>I think Tom is just reaffirming what we're all saying ;)</p>



<a name="167666627"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666627" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666627">(Jun 08 2019 at 20:36)</a>:</h4>
<p><span class="user-mention" data-user-id="126931">@centril</span> doesn't have to be globals, it's just easier with globals. we can stick stuff in Sess instead</p>



<a name="167666631"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666631" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666631">(Jun 08 2019 at 20:36)</a>:</h4>
<p><span class="user-mention" data-user-id="132040">@Manish Goregaokar</span> Using <code>Sess</code> seems preferable</p>



<a name="167666633"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666633" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666633">(Jun 08 2019 at 20:37)</a>:</h4>
<p>Cool we'll do that</p>



<a name="167666645"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666645" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Tom Phinney <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666645">(Jun 08 2019 at 20:37)</a>:</h4>
<p>I've thought all along that it was doable and worth doing. It's just going to be a lot worse than making Fluent versions of error strings and their arguments.</p>



<a name="167666647"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666647" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666647">(Jun 08 2019 at 20:37)</a>:</h4>
<div class="codehilite"><pre><span></span><span class="k">trait</span><span class="w"> </span><span class="n">AsError</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="sd">/// ParseSess, Session or `TyCtxt`</span>
<span class="w">    </span><span class="k">type</span> <span class="nc">Session</span><span class="p">;</span><span class="w"></span>
<span class="w">    </span><span class="k">fn</span> <span class="nf">to_error</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="w"> </span><span class="n">session</span>: <span class="nc">Self</span>::<span class="n">Session</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="nc">DiagnosticBuilder</span><span class="p">;</span><span class="w"></span>
<span class="w">    </span><span class="k">fn</span> <span class="nf">emit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">        </span><span class="bp">self</span><span class="p">.</span><span class="n">to_error</span><span class="p">().</span><span class="n">emit</span><span class="p">()</span><span class="w"></span>
<span class="w">    </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>


<p><span class="user-mention" data-user-id="132040">@Manish Goregaokar</span> this is even adapted to just that ^^</p>



<a name="167666649"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666649" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666649">(Jun 08 2019 at 20:37)</a>:</h4>
<p><span class="user-mention" data-user-id="132894">@Tom Phinney</span> I don't know what you mean by that</p>



<a name="167666698"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666698" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666698">(Jun 08 2019 at 20:38)</a>:</h4>
<p><span class="user-mention" data-user-id="132894">@Tom Phinney</span> i mean, the plumbing for this is obviously going to be a bunch of work</p>



<a name="167666703"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666703" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666703">(Jun 08 2019 at 20:38)</a>:</h4>
<p>the plumbing should be almost conflict free though</p>



<a name="167666707"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666707" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666707">(Jun 08 2019 at 20:38)</a>:</h4>
<p>as in?</p>



<a name="167666709"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666709" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666709">(Jun 08 2019 at 20:38)</a>:</h4>
<p><span class="user-mention" data-user-id="126931">@centril</span> yep!</p>



<a name="167666710"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666710" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666710">(Jun 08 2019 at 20:38)</a>:</h4>
<p>like no bitrot because it's all new stuff</p>



<a name="167666711"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666711" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666711">(Jun 08 2019 at 20:38)</a>:</h4>
<p>that's why i suggested the session lol</p>



<a name="167666718"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666718" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666718">(Jun 08 2019 at 20:39)</a>:</h4>
<p>yeah</p>



<a name="167666728"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666728" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666728">(Jun 08 2019 at 20:39)</a>:</h4>
<p><span class="user-mention" data-user-id="132040">@Manish Goregaokar</span> Could you summarize this informal mini-meeting in the roadmap issue?</p>



<a name="167666729"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666729" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666729">(Jun 08 2019 at 20:39)</a>:</h4>
<p>so i think once we have some error structs, what i can do is start figuring out how best to add fluent to that.</p>



<a name="167666731"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666731" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Tom Phinney <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666731">(Jun 08 2019 at 20:40)</a>:</h4>
<p><span class="user-mention" data-user-id="132040">@Manish Goregaokar</span> There's a lot of detailed code path analysis and transforming that will be required. In many cases existing generation of error message fragments is intermixed with other code.</p>



<a name="167666759"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666759" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666759">(Jun 08 2019 at 20:40)</a>:</h4>
<p>yep; very good <span aria-label="+1" class="emoji emoji-1f44d" role="img" title="+1">:+1:</span></p>



<a name="167666781"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666781" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666781">(Jun 08 2019 at 20:40)</a>:</h4>
<p><span class="user-mention" data-user-id="132894">@Tom Phinney</span> as in?</p>



<a name="167666786"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666786" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666786">(Jun 08 2019 at 20:40)</a>:</h4>
<p>oh, like the borrow errors where an entire sentence is split across spans</p>



<a name="167666787"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666787" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666787">(Jun 08 2019 at 20:40)</a>:</h4>
<p><span class="user-mention" data-user-id="132894">@Tom Phinney</span> I think this just means that there's a lot of diagnostics logic intermingled with the happy path</p>



<a name="167666791"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666791" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666791">(Jun 08 2019 at 20:40)</a>:</h4>
<p>that is a problem that we want to fix independent of internationalization</p>



<a name="167666792"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666792" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666792">(Jun 08 2019 at 20:40)</a>:</h4>
<p><span class="user-mention" data-user-id="132894">@Tom Phinney</span> we're trying to get rid of these <em>anyway</em> <span aria-label="laughing" class="emoji emoji-1f606" role="img" title="laughing">:laughing:</span></p>



<a name="167666795"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666795" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666795">(Jun 08 2019 at 20:41)</a>:</h4>
<p>yep</p>



<a name="167666808"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666808" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666808">(Jun 08 2019 at 20:41)</a>:</h4>
<p>any fluent changes could at first focus on the easy ones</p>



<a name="167666812"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666812" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666812">(Jun 08 2019 at 20:41)</a>:</h4>
<p><span class="user-mention" data-user-id="132040">@Manish Goregaokar</span> hmm; I do think we might have some error structs somewhere in typeck/infer/coercions</p>



<a name="167666815"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666815" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666815">(Jun 08 2019 at 20:41)</a>:</h4>
<p>already, that is</p>



<a name="167666817"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666817" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666817">(Jun 08 2019 at 20:41)</a>:</h4>
<p>as <span class="user-mention" data-user-id="132040">@Manish Goregaokar</span> said, once there are some structs, only do the fluent stuff for these</p>



<a name="167666863"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666863" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Tom Phinney <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666863">(Jun 08 2019 at 20:42)</a>:</h4>
<p><span class="user-mention" data-user-id="126931">@centril</span>  is correct, both in the source of the complexity and the need to fix it (eventually). It's over a year since I looked at this task. WRT "As in?", now you're taxing my memory.</p>



<a name="167666866"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666866" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666866">(Jun 08 2019 at 20:42)</a>:</h4>
<p><span class="user-mention" data-user-id="132894">@Tom Phinney</span> fwiw such split-sentence diagnostics are awkward _anyway_ in English. Fortunately all languages have recursion, so you can pretty much always construct a correct-but-awkward sentence that does this.</p>



<a name="167666869"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666869" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666869">(Jun 08 2019 at 20:43)</a>:</h4>
<p>(recursion the linguistic concept)</p>



<a name="167666878"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666878" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666878">(Jun 08 2019 at 20:43)</a>:</h4>
<p><span class="user-mention" data-user-id="132040">@Manish Goregaokar</span> Finnish is even recursively enumerable <span aria-label="joy" class="emoji emoji-1f602" role="img" title="joy">:joy:</span></p>



<a name="167666879"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666879" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666879">(Jun 08 2019 at 20:43)</a>:</h4>
<p>the ordering isn't dependent on the language, it's dependent on the way we wish to present the error</p>



<a name="167666929"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666929" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666929">(Jun 08 2019 at 20:44)</a>:</h4>
<p><span class="user-mention" data-user-id="126931">@centril</span> I mean, i want to wait until we've got AsError being used :)</p>



<a name="167666930"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666930" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666930">(Jun 08 2019 at 20:44)</a>:</h4>
<p>bc then i can just fuck with AsError</p>



<a name="167666932"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666932" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666932">(Jun 08 2019 at 20:44)</a>:</h4>
<p>Fair =)</p>



<a name="167666933"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666933" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Tom Phinney <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666933">(Jun 08 2019 at 20:44)</a>:</h4>
<p>It seems that we all agree this is a task worth doing, and that the needed restructuring will reduce some of <code>rustc</code>'s technical debt. How do we start?</p>



<a name="167666935"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666935" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666935">(Jun 08 2019 at 20:44)</a>:</h4>
<p><span class="user-mention" data-user-id="132894">@Tom Phinney</span> right now there's an on-going cleanup effort in e.g. the parser</p>



<a name="167666947"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666947" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666947">(Jun 08 2019 at 20:45)</a>:</h4>
<p>we are moving some stuff to <code>diagnostics.rs</code> files and such</p>



<a name="167666948"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666948" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666948">(Jun 08 2019 at 20:45)</a>:</h4>
<p>you can join in to clean up the happy path</p>



<a name="167666953"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666953" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666953">(Jun 08 2019 at 20:45)</a>:</h4>
<p>I think a cool design would basically be a #[derive(AsError)]</p>



<a name="167666954"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666954" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666954">(Jun 08 2019 at 20:45)</a>:</h4>
<p>but this WG is pretty new</p>



<a name="167666957"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666957" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666957">(Jun 08 2019 at 20:45)</a>:</h4>
<p>this is useful anyway</p>



<a name="167666959"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666959" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666959">(Jun 08 2019 at 20:45)</a>:</h4>
<p>but this is super easy to adapt to Fluent</p>



<a name="167666962"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167666962" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167666962">(Jun 08 2019 at 20:45)</a>:</h4>
<p>uh</p>



<a name="167667011"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667011" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667011">(Jun 08 2019 at 20:46)</a>:</h4>
<p><span class="user-mention" data-user-id="132040">@Manish Goregaokar</span> yea that's very nice; probably you probably need some customizations for different phases of the compiler and the associated type for the session</p>



<a name="167667018"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667018" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667018">(Jun 08 2019 at 20:46)</a>:</h4>
<p>argh too bad we don't have anonymous structs this derive would be more fun to write</p>



<a name="167667019"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667019" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667019">(Jun 08 2019 at 20:46)</a>:</h4>
<p><span class="user-mention" data-user-id="132040">@Manish Goregaokar</span> maybe a design inspired by snafu / failure?</p>



<a name="167667022"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667022" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667022">(Jun 08 2019 at 20:47)</a>:</h4>
<p><span class="user-mention" data-user-id="132040">@Manish Goregaokar</span> do you mean structural records?</p>



<a name="167667037"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667037" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667037">(Jun 08 2019 at 20:47)</a>:</h4>
<p>yes</p>



<a name="167667038"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667038" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667038">(Jun 08 2019 at 20:47)</a>:</h4>
<p>oh hold on i got it</p>



<a name="167667085"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667085" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667085">(Jun 08 2019 at 20:48)</a>:</h4>
<p>Shame-less plug: <a href="https://github.com/rust-lang/rfcs/pull/2584" target="_blank" title="https://github.com/rust-lang/rfcs/pull/2584">https://github.com/rust-lang/rfcs/pull/2584</a> =P</p>



<a name="167667089"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667089" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667089">(Jun 08 2019 at 20:48)</a>:</h4>
<div class="codehilite"><pre><span></span>#[derive(AsError)]
#[error = &quot;Cannot move out of borrow in {ty}&quot;, span]
#[note = &quot;First borrwed here&quot;, other_span]
#[code = E12345]
struct MoveOutOfBorrowError {
    ty: Ty,
    span: Span,
    other_span: Span,
}
</pre></div>



<a name="167667090"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667090" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667090">(Jun 08 2019 at 20:48)</a>:</h4>
<p>how does that look</p>



<a name="167667095"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667095" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667095">(Jun 08 2019 at 20:49)</a>:</h4>
<p>if we have this, it becomes extremely simple to migrate to fluent</p>



<a name="167667102"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667102" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667102">(Jun 08 2019 at 20:49)</a>:</h4>
<p>in fact, we can do most of it in an automated way</p>



<a name="167667106"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667106" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667106">(Jun 08 2019 at 20:49)</a>:</h4>
<p><span class="user-mention" data-user-id="132040">@Manish Goregaokar</span>  hmm; but why are we baking the English strings into this? this is the pre-migrated version?</p>



<a name="167667109"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667109" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667109">(Jun 08 2019 at 20:49)</a>:</h4>
<p>Yes</p>



<a name="167667110"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667110" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667110">(Jun 08 2019 at 20:49)</a>:</h4>
<p>one step at a time</p>



<a name="167667112"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667112" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667112">(Jun 08 2019 at 20:49)</a>:</h4>
<p>Ah yes; this is very nice</p>



<a name="167667164"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667164" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667164">(Jun 08 2019 at 20:50)</a>:</h4>
<p>migrating this to fluent is extremely simple, you write a script that finds these, extracts the strings, converts them to fluent's format, and replaces them with ids.</p>



<a name="167667168"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667168" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667168">(Jun 08 2019 at 20:50)</a>:</h4>
<p>more tricky if you got control flow in there but most errors don't have that</p>



<a name="167667190"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667190" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667190">(Jun 08 2019 at 20:51)</a>:</h4>
<div class="codehilite"><pre><span></span><span class="cp">#[derive(AsError)]</span><span class="w"></span>
<span class="cp">#[fluent = </span><span class="s">&quot;borrowck-move-out-of-borrow&quot;</span><span class="cp">]</span><span class="w"></span>
<span class="cp">#[error = 1, span]</span><span class="w"></span>
<span class="cp">#[note = 1, other_span]</span><span class="w"></span>
<span class="k">struct</span> <span class="nc">MoveOutOfBorrowError</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="n">ty</span>: <span class="nc">Ty</span><span class="p">,</span><span class="w"></span>
<span class="w">    </span><span class="n">span</span>: <span class="nc">Span</span><span class="p">,</span><span class="w"></span>
<span class="w">    </span><span class="n">other_span</span>: <span class="nc">Span</span><span class="p">,</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>

<span class="c1">// borrowck.ftl</span>
<span class="n">borrowck</span><span class="o">-</span><span class="k">move</span><span class="o">-</span><span class="n">out</span><span class="o">-</span><span class="n">of</span><span class="o">-</span><span class="n">borrow</span><span class="w"></span>
<span class="w">    </span><span class="p">.</span><span class="n">error1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Cannot</span><span class="w"> </span><span class="k">move</span><span class="w"> </span><span class="n">out</span><span class="w"> </span><span class="n">of</span><span class="w"> </span><span class="n">borrow</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="cp">$ty</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w">    </span><span class="p">.</span><span class="n">note1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">First</span><span class="w"> </span><span class="n">borrowed</span><span class="w"> </span><span class="n">here</span><span class="w"></span>
</pre></div>



<a name="167667223"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667223" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667223">(Jun 08 2019 at 20:52)</a>:</h4>
<p>Those would be manually impld anyway</p>



<a name="167667245"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667245" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667245">(Jun 08 2019 at 20:52)</a>:</h4>
<p>though actually since fluent has selection support a lot of what would originally be a manual impl of AsError could become a derive in the fluent world</p>



<a name="167667258"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667258" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667258">(Jun 08 2019 at 20:53)</a>:</h4>
<p>(I'm on the fence about doing <code>borrowck-move-out-of-borrow.error1</code> vs <code>borrowck-move-out-of-borrow-error1</code>, I'd have to look at Pontoon's interface for the two. Also the numbering/whatever. We can figure that out later)</p>



<a name="167667301"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667301" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667301">(Jun 08 2019 at 20:54)</a>:</h4>
<p>Yeah this is neat; Are the <code>#[note ..]</code>s in sequence there? can you add more?</p>



<a name="167667308"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667308" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667308">(Jun 08 2019 at 20:54)</a>:</h4>
<p>yes</p>



<a name="167667309"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667309" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667309">(Jun 08 2019 at 20:54)</a>:</h4>
<p>or does fluent control the order?</p>



<a name="167667312"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667312" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667312">(Jun 08 2019 at 20:54)</a>:</h4>
<p>that's why i numbered it</p>



<a name="167667313"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667313" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667313">(Jun 08 2019 at 20:54)</a>:</h4>
<p>so you can add a note2</p>



<a name="167667314"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667314" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667314">(Jun 08 2019 at 20:54)</a>:</h4>
<p>the precise way you identify different notes will need to be figured out :)</p>



<a name="167667315"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667315" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667315">(Jun 08 2019 at 20:54)</a>:</h4>
<p>numbering is one valid but ugly way to do it</p>



<a name="167667316"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667316" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667316">(Jun 08 2019 at 20:54)</a>:</h4>
<p><span class="user-mention" data-user-id="132040">@Manish Goregaokar</span> aah; I was thinking that the attribute order in Rust would be the order perhaps :P</p>



<a name="167667317"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667317" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667317">(Jun 08 2019 at 20:54)</a>:</h4>
<p>_shrug_</p>



<a name="167667335"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667335" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667335">(Jun 08 2019 at 20:55)</a>:</h4>
<p>so i18n best practices are to rename the key when things change, usually by adding a number, so numbering may not be great here</p>



<a name="167667337"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667337" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667337">(Jun 08 2019 at 20:55)</a>:</h4>
<p>(this way tooling like Pontoon notices the change)</p>



<a name="167667338"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667338" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667338">(Jun 08 2019 at 20:55)</a>:</h4>
<p>another way to do it is to write your own tooling that keeps a watch on the locales/en-US folder</p>



<a name="167667383"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667383" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667383">(Jun 08 2019 at 20:56)</a>:</h4>
<p>that's not our problem now</p>



<a name="167667384"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667384" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667384">(Jun 08 2019 at 20:56)</a>:</h4>
<p>okay, so I'll first jot down this custom derive design on the issue</p>



<a name="167667387"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667387" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667387">(Jun 08 2019 at 20:56)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span> can you send me an invite to the diagnostics meetings?</p>



<a name="167667390"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667390" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667390">(Jun 08 2019 at 20:56)</a>:</h4>
<p>will do</p>



<a name="167667391"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667391" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667391">(Jun 08 2019 at 20:56)</a>:</h4>
<p>thx</p>



<a name="167667405"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667405" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667405">(Jun 08 2019 at 20:57)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span> you should add wg-diagnostics to the t-compiler google calendar</p>



<a name="167667408"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667408" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667408">(Jun 08 2019 at 20:57)</a>:</h4>
<p>we don't have a regular meeting</p>



<a name="167667410"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667410" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667410">(Jun 08 2019 at 20:57)</a>:</h4>
<p>yeah but add them to the calendar when you have meetings</p>



<a name="167667414"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667414" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667414">(Jun 08 2019 at 20:57)</a>:</h4>
<p>ok</p>



<a name="167667415"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667415" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667415">(Jun 08 2019 at 20:58)</a>:</h4>
<p>its a great way to get an overview</p>



<a name="167667458"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667458" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667458">(Jun 08 2019 at 20:58)</a>:</h4>
<p>thanks</p>



<a name="167667612"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667612" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667612">(Jun 08 2019 at 21:02)</a>:</h4>
<p><span class="user-mention" data-user-id="132040">@Manish Goregaokar</span> one idea for the custom derive: If you leave out <code>#[fluent = "$key"]</code> then infer the <code>$key</code> by hyphenating the struct's name</p>



<a name="167667628"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667628" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667628">(Jun 08 2019 at 21:03)</a>:</h4>
<p>nah, we'd need the explicit key in order to rename the key if things change</p>



<a name="167667635"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667635" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667635">(Jun 08 2019 at 21:03)</a>:</h4>
<p>but the autogeneration could be done that way</p>



<a name="167667716"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667716" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667716">(Jun 08 2019 at 21:05)</a>:</h4>
<p>i don't think we need to figure this out right now, but y'all _should_ figure out what the AsError custom derive should look like</p>



<a name="167667718"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667718" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667718">(Jun 08 2019 at 21:05)</a>:</h4>
<p>it may be better to make it a rustc attribute, not custom derive</p>



<a name="167667766"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667766" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667766">(Jun 08 2019 at 21:06)</a>:</h4>
<p>(that way we can give the derive some arguments itself, e.g. <code>#[aserror(TyCtxt)]</code> for different session levels)</p>



<a name="167667789"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667789" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667789">(Jun 08 2019 at 21:07)</a>:</h4>
<p>Seems like something you can provide via helper attributes to the derive?</p>



<a name="167667841"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667841" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667841">(Jun 08 2019 at 21:08)</a>:</h4>
<p>yeah.</p>



<a name="167667842"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667842" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667842">(Jun 08 2019 at 21:08)</a>:</h4>
<p>_shrug_</p>



<a name="167667844"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667844" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667844">(Jun 08 2019 at 21:08)</a>:</h4>
<p>y'all should pick a design for the custom derive</p>



<a name="167667856"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167667856" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167667856">(Jun 08 2019 at 21:09)</a>:</h4>
<p>i don't have much of an opinion, i'll make sure whatever y'all pick is compatible with moving to fluent later</p>



<a name="167668338"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167668338" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167668338">(Jun 08 2019 at 21:21)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span> I'm wondering whether <code>ParseSess</code>, <code>Session</code>, and <code>TyCtxt</code>  have some sort of common trait we can create that would facilitate generating the code for those custom derives</p>



<a name="167668346"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167668346" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167668346">(Jun 08 2019 at 21:21)</a>:</h4>
<p>Such that you can have <code>type Session: SessionLike;</code></p>



<a name="167679148"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167679148" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Tom Phinney <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167679148">(Jun 09 2019 at 02:38)</a>:</h4>
<p>Back from working on my house with a contractor for six hours. <span class="user-mention" data-user-id="124288">@oli</span> <span class="user-mention" data-user-id="132040">@Manish Goregaokar</span>  would you send me an invite to any planned meetings on internationalization of diagnostics? I have a lot of time conflicts this summer but I'll attend if I can, or catch up on zulip later.</p>



<a name="167680540"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167680540" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167680540">(Jun 09 2019 at 03:19)</a>:</h4>
<p><span class="user-mention" data-user-id="132894">@Tom Phinney</span> there aren't any planned meetings for diagnostics internationalization, we decided to do a bunch of other cleanups first</p>



<a name="167680550"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167680550" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167680550">(Jun 09 2019 at 03:19)</a>:</h4>
<p>i don't think we'll be having meetings for i18n</p>



<a name="167680551"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167680551" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167680551">(Jun 09 2019 at 03:19)</a>:</h4>
<p>we have a clear plan already</p>



<a name="167680552"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization/near/167680552" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/147480-t-compiler/wg-diagnostics/topic/Internationalization.html#167680552">(Jun 09 2019 at 03:19)</a>:</h4>
<p>i'll let you know when we start doing that though</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>